package Basic;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class GUILayout extends Frame implements ActionListener {

	Button btnS,btnN,btnE,btnW,btnC;
	//GUILayout guiLayout=new GUILayout(); 
	GUILayout(){
		super("BorderLeyout布局");/*显示的调用Frame类的构造函数，通过超类Frame创建一个窗口，窗口的名字叫做“BorderLeyout布局”,如果不需要设置窗口的名字，可以不需要显示的调用超类的无参构造器，系统会自动调用*/
		/*guiLayout.*/setLayout(new BorderLayout(10,10));//这里继承了Frame的方法可以直接动态引用无须创建对象来调用setLayout(/*布局类型对象*/);这里布局类是BorderLayout类，所以直接new了一个这个对象，该布局的带双参构造函数，参数表示该布局中的五个区域之间的距离（高度和宽度），不带参数的构造函数表示五个区域直接没有距离
		btnN=new Button("North");/*创建按钮对象btnN，这个按钮的名字叫做North*/
		btnS=new Button("South");/*创建按钮对象btnS，这个按钮的名字叫做South*/
		btnE=new Button("East");
		btnW=new Button("West");
		btnC=new Button("Center");
		
		add("North", btnN);//将控件添加到窗体中，由于前面setLayout()已经写入了布局格式，所以这里的第一个参数只能是"North","South""East","West","Center"其中之一，分别表示东西南北中，不同的地方放入不同的控件对象
		add("South", btnS);
		add("East", btnE);
		add("West", btnW);
		add("Center", btnC);
		
		btnC.addActionListener(this);/*监听这一个按钮btnC 对单击做出反应*/
		pack();/*使此窗口的大小适合其子组件的首选大小和布局。如果所有尺寸小于上一次调用setMinimumSize方法指定的最小尺寸，则窗口的结果宽度和高度将自动放大。
如果窗口和/或其所有者尚不可显示，则在计算首选大小之前，这两个窗口都可显示。在计算窗口大小后，将验证该窗口*/
		setVisible(true);//设置窗口可见，默认是false，如果不设置的话窗口存在但是用户不可见，相当于不存在。
		
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		/*这个是监听事件发生之后触发的一个方法（动作）*/
		if(e.getActionCommand()=="Center") {
			dispose();//关闭窗口指令，退出程序；
			System.exit(0);//0表示正常退出系统
		}
	}



}
